Estrategia definitiva para el desarrollo de software automatizado.
OpenCode Go El motor diario: Sistema de créditos rodantes ($12/5h). Ideal para modelos de alta eficiencia (DeepSeek V4, Qwen 3.6). Úsalo para el trabajo pesado y escritura de código constante.
OpenCode Zen El respaldo premium: Pago por uso (Pay-as-you-go). Aloja modelos ultra-validados. Actúa como failover automático si se agota Go, o para tareas críticas de auditoría y depuración compleja.
Configura `opencode.json` con modelos eficientes por defecto y establece la red de seguridad de Zen para no frenar la automatización por límites de cuota.
Ejecuta OpenCode en modo de solo lectura para escanear la arquitectura (vía ripgrep) y generar la caché de contexto sin riesgo de modificaciones accidentales.
Delega tareas incrementales. El agente escribe código y ejecuta pruebas automáticas validadas por los servidores LSP integrados. Se bloquea mediante reglas de seguridad para no dañar el entorno local.
Ante bugs críticos, el enrutador cambia temporalmente a modelos de razonamiento (como Kimi K2.6 o modelos Zen premium) para hacer análisis de causa raíz.
Coloca este código en el archivo opencode.json en la raíz de tu proyecto para orquestar la seguridad
y el enrutamiento:
{
"$schema": "https://opencode.ai/config.json",
// ── Modelo principal y modelo liviano ──────────────────────────────
// (antes: routing_strategy.model_mapping.build → modelo principal)
// (antes: routing_strategy.model_mapping.plan → agente plan)
"model": "opencode-go/kimi-k2.6",
"small_model": "opencode-go/deepseek-v4-flash",
// ── Agentes por tarea ──────────────────────────────────────────────
// Mapea routing_strategy.model_mapping (plan, build, debug, audit)
// a agentes reales de OpenCode con modelos específicos.
"agent": {
"plan": {
"model": "opencode-go/qwen3.6-plus",
"description": "Planificación y arquitectura del proyecto"
},
"build": {
"model": "opencode-go/deepseek-v4-flash",
"description": "Construcción y desarrollo de código"
},
"audit": {
"model": "opencode-go/glm-5.1",
"mode": "subagent",
"description": "Revisión, auditoría y validación de código"
},
"debug": {
"model": "opencode-go/qwen3.6-plus",
"mode": "subagent",
"description": "Debugging rápido de bugs sencillos: errores de sintaxis, typos, imports faltantes, lógica simple",
"prompt": "Eres un debugger eficiente. Enfócate en resolver bugs simples rápidamente: errores de sintaxis, variables mal escritas, imports faltantes, lógica básica incorrecta. Sé conciso y directo. Muestra solo el fix necesario."
},
"deep-debug": {
"model": "opencode-go/glm-5.1",
"mode": "subagent",
"description": "Debugging profundo de bugs complejos: race conditions, memory leaks, errores de arquitectura, problemas multi-archivo",
"prompt": "Eres un debugger experto para problemas complejos. Analiza a fondo: race conditions, memory leaks, errores de estado, problemas de arquitectura, bugs que cruzan múltiples archivos. Explica la causa raíz antes de proponer la solución."
}
},
// ── Permisos (security_restrictions) ───────────────────────────────
// Mapea security_restrictions.execution_mode: "supervised" → todo pide aprobación por defecto
// Mapea security_restrictions.terminal_guard.allowed_commands → bash allow
// Mapea security_restrictions.terminal_guard.banned_commands → bash deny
// Mapea security_restrictions.file_system_guard → edit/read rules
"permission": {
// Default supervisado: todo pide aprobación salvo lo explícitamente permitido
"*": "ask",
"read": "allow",
"list": "allow",
"grep": "allow",
"glob": "allow",
"question": "allow",
"websearch": "allow",
"webfetch": "allow",
// Terminal: comandos permitidos, denegados y el resto pide aprobación
"bash": {
"npm test": "allow",
"npm run build": "allow",
"npm run *": "ask",
"vitest *": "allow",
"git status": "allow",
"git diff": "allow",
"git log *": "allow",
"git add *": "ask",
"git commit *": "ask",
"rm -rf *": "deny",
"curl *": "deny",
"wget *": "deny",
"env": "deny",
"printenv": "deny",
"*": "ask"
},
// Escritura: requiere aprobación (supervisado)
"edit": "ask",
// Acceso a directorios externos: denegado por defecto
"external_directory": "deny"
},
// ── Configuración de compactación (context caching) ────────────────
// Mapea privacy_policy.context_caching.max_tokens_saved
"compaction": {
"auto": true,
"prune": true,
"preserve_recent_tokens": 64000
},
// ── Watcher: respetar .gitignore (privacy_policy.respect_gitignore) ─
// OpenCode respeta .gitignore por defecto. Reforzamos con ignore patterns
// para lo que estaba en file_system_guard.write_denylist
"watcher": {
"ignore": [
".env*",
"dist/**/*",
"node_modules/**/*",
".git/**/*"
]
},
// ── Telemetría: deshabilitada (privacy_policy.share_telemetry: false) ─
"share": "disabled",
"autoupdate": "notify",
// ── Experimental (automation_rules.max_consecutive_build_loops) ─────
"experimental": {
"continue_loop_on_deny": false
}
}
git init).opencode --mode planAGENTS.md:# 🤖 Agent Context & Memory (Proyecto: Nombre)
## 🎯 Objetivo del Proyecto
- Reemplazar este texto con la descripción corta del producto (ej: Microservicio de autenticación OAuth2).
## 🛠️ Stack Tecnológico & Restricciones
- **Lenguaje/Entorno:** Node.js v20 (TypeScript)
- **Framework Principal:** Fastify
- **Base de Datos:** PostgreSQL via Prisma ORM
- **Pruebas:** Vitest
## 📐 Arquitectura Propuesta
- Estructura de carpetas: Clean Architecture básica (`/src/domain`, `/src/infrastructure`, `/src/application`).
- El agente debe respetar el tipado estricto de TypeScript.
## 🚦 Estado Actual e Hitos de Automatización
- [x] Inicialización del repositorio y configuración de OpenCode.
- [ ] Configuración de Prisma y modelos de base de datos.
- [ ] Implementación de rutas de registro y login.
- [ ] Suite de pruebas unitarias integradas.
## 📌 Reglas Generales para el Agente (Modo Build)
1. Antes de dar un endpoint por terminado, ejecuta siempre `npm test`.
2. No uses librerías externas adicionales sin preguntar primero en modo Plan.